import { DynamicFormComponent } from './components/dynamic-form/dynamic-form.component';
import { DynamicFormItemComponent } from './components/dynamic-form-item/dynamic-form-item.component';

import { CommonModule } from '@angular/common';

import { AppConfigComponent } from './app.config.component';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';

import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { InputSwitchModule } from 'primeng/inputswitch';
import { RadioButtonModule } from 'primeng/radiobutton';
import {CalendarModule} from 'primeng/calendar';

import { ButtonModule } from 'primeng/button';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

import { BreadcrumbModule } from 'primeng/breadcrumb';
import { PanelMenuModule } from 'primeng/panelmenu';

import { DialogModule } from 'primeng/dialog';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { ToastModule } from 'primeng/toast';
import { TableModule } from 'primeng/table';
import { InputTextModule } from 'primeng/inputtext';
import {DropdownModule} from 'primeng/dropdown';
import {InputTextareaModule} from 'primeng/inputtextarea';
import {MultiSelectModule} from 'primeng/multiselect';
import {InputNumberModule} from 'primeng/inputnumber';
import {InputMaskModule} from 'primeng/inputmask';
import {TooltipModule} from 'primeng/tooltip';
import {FileUploadModule} from 'primeng/fileupload';
import {ChartModule} from 'primeng/chart';
import { NgxEchartsModule } from 'ngx-echarts';
import {SelectButtonModule} from 'primeng/selectbutton';


import { HelloComponent } from './pages/hello/hello.component';

import { AppInputStyleSwitchModule } from './app.inputstyleswitch.component';

import { AppConfigService } from './shared/service/appconfigservice';
import { CookieService } from 'ngx-cookie-service';

import { ConfirmationService, MessageService } from 'primeng/api';
import { IndexComponent } from './pages/index/index.component';
import { LeftNavComponent } from './components/left-nav/left-nav.component';
import { MyInterceptor } from './MyInterceptor';
import { UploadComponent } from './components/upload/upload.component';
import { Chart01Component } from './pages/chart01/chart01.component';
import { CascaderModule } from './components/cascader/module';
import { RadiosModule } from './components/radio/module';


@NgModule({
  declarations: [
    AppComponent,
    HelloComponent,
    AppConfigComponent,
    DynamicFormItemComponent,
    DynamicFormComponent,
    IndexComponent,
    LeftNavComponent,
    UploadComponent,
    Chart01Component,
  ],
  imports: [
    BrowserModule,
    CommonModule,
    HttpClientModule,
    BrowserAnimationsModule,
    AppRoutingModule,
    BreadcrumbModule,
    ButtonModule,
    InputSwitchModule,
    RadioButtonModule,
    FormsModule,
    ReactiveFormsModule,
    PanelMenuModule,
    DialogModule,
    ToastModule,
    ConfirmDialogModule,
    AppInputStyleSwitchModule,
    TableModule,
    InputTextModule,
    DropdownModule,
    InputTextareaModule,
    CalendarModule,
    MultiSelectModule,
    InputNumberModule,
    InputMaskModule,
    TooltipModule,
    FileUploadModule,
    ChartModule,
    SelectButtonModule,
    CascaderModule,
    RadiosModule,

    NgxEchartsModule.forRoot({
      /**
       * This will import all modules from echarts.
       * If you only need custom modules,
       * please refer to [Custom Build] section.
       */
      echarts: () => import('echarts'), // or import('./path-to-my-custom-echarts')
    }),
  ],
  providers: [
    AppConfigService,
    ConfirmationService,
    MessageService,
    CookieService,
    { provide: HTTP_INTERCEPTORS, useClass: MyInterceptor, multi: true }
    // CustomerService
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}
